package com.example.service;

import com.example.entity.SysUser;
import com.example.utils.QueryInfo;
import com.example.utils.Result;
import com.example.vo.LoginVo;

/**
 * 用户操作逻辑
 * @Comment：最难的一次作业
 * @Date: 2023/11/18
 */
public interface SysUserService {
    /*
    * 登录接口，传入登录参数loginVo(包含username和password)
    * 返回token，通过token获取资源
    * */
    Result login(LoginVo loginVo);

    /*
    * 登录接口，传入登录参数loginVo(包含username和password)
    * 返回token，通过token获取资源
    * */
    Result miniLogin(String openid, String sessionKey);

    //根据用户名获取用户信息
    SysUser findByUsername(String username);

    // 分页查询
    Result findPage(QueryInfo queryInfo);

    // 添加用户信息
    Result insert(SysUser user);

    // 修改用户信息
    Result update(SysUser user);

    // 删除用户信息
    Result delete(Long id);

    /**
     * 根据用户邮箱修改密码
     * */
    void updatePwdByMail(String email, String password);

    /**
     * 根据openid更新用户信息
     * */
    Result updateByopenId(SysUser user);
}
